home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 15 / CU Amiga Magazine's Super CD-ROM 15 (1997)(EMAP Images)(GB)[!][issue 1997-10].iso / CUCD / Utilities / Post / PostRexxDemo.rexx < prev    next >
Encoding:
OS/2 REXX Batch file  |  1997-05-03  |  6.1 KB  |  147 lines

  1. /* PostRexxDemo.rexx */
  2.  
  3. OPTIONS FAILAT 100
  4. OPTIONS RESULTS
  5.  
  6. /* some global definitions */
  7. HIGH = '1B'X || '[32m'
  8. INFO = '1B'X || '[33m'
  9. BOLD = '1B'X || '[1m'
  10. NORMAL = '1B'X || '[0m'
  11. CR = '0A'X
  12.  
  13. /* post already running? */
  14. if ~show('P', 'POST.1') then do
  15.    ADDRESS COMMAND 'RUN > NIL: POST:Post OPTFILE POST:envarc/POST.rexxdemo'
  16.    ADDRESS COMMAND WaitForPort 'POST.1'
  17.    end
  18.  
  19. ADDRESS 'POST.1'
  20.  
  21. SAY HIGH || BOLD || "Welcome to the world of post!" || NORMAL CR
  22. SAY "This is an introduction to the arexx-commands of post. Each command"
  23. SAY "is explained with a few words and introduced with a small example."
  24. SAY "The example-lines are " || HIGH ||  "highlighted " ||  NORMAL ||  "and after you read them and pressed"
  25. SAY "return they will be interpreted."
  26. CALL wait()
  27. SAY "If an error occurs and OPTIONS RESULTS is active, the special arexx"
  28. SAY "variable RC (return code) will be set and the error string will be"
  29. SAY "found in the variable POST.LASTERROR. If the given arguments have"
  30. SAY "the wrong type or there are too few arguments RC will be set to 20."
  31. SAY "Less severe errors will cause a warning (RC = 5)"
  32. SAY "NOTE: The commands are not case-sensitive, e.g. okmsg equals OKmSg."
  33. SAY ""
  34.  
  35. SAY "The OKMSG command will display a given text in an AutoRequester:"
  36. CALL do_command('okmsg "this is a test"')
  37.  
  38. SAY HIGH || "The window functions:"  || NORMAL
  39. SAY "You can open/close the window with OPENWINDOW/CLOSEWINDOW, bring it"
  40. SAY "to front/back with WINDOWTOFRONT/WINDOWTOBACK, zip it with ZIPWINDOW"
  41. SAY "and activate it with ACTIVATEWINDOW."
  42. CALL wait()
  43. SAY "Furthermore you can move and size the window with"
  44. SAY "'CHANGEWINDOWBOX left top width height'"
  45. SAY "left and top are the coordinates of the upper-left corner of the window"
  46. SAY "and width and height are its dimensions. This function is save, but"
  47. SAY "wrong arguments may cause unexpected results."
  48. SAY "zip and changewindow demo:"
  49. CALL do_command ('zipwindow; okmsg "window zipped"' || CR ||,
  50.      'changewindowbox 50 50 150 150; okmsg "window changed"' || CR ||,
  51.      'zipwindow; okmsg "window re-zipped"')
  52. SAY "The window will be activated for 3 secs and then it will be closed."
  53. SAY "Some errors will be produced because you can do nothing with a closed"
  54. SAY "window but open it again:"
  55. CALL do_command('activatewindow; ADDRESS COMMAND Wait 3' || CR ||,
  56.      'closewindow; okmsg "now the window is gone"' || CR ||,
  57.      'closewindow; if RC > 0 THEN okmsg "close error: " POST.LASTERROR' || CR ||,
  58.      'windowtoback; if RC > 0 THEN okmsg "toback error: " POST.LASTERROR' || CR ||,
  59.      'zipwindow; if RC > 0 THEN okmsg "zip error: " POST.LASTERROR')
  60. SAY "The window is opened again and an error is produced because you can't"
  61. SAY "open it twice. Then it is sent to back and to front again:"
  62. CALL do_command('openwindow' || CR ||,
  63.      'openwindow; if RC > 0 THEN okmsg "open error: " POST.LASTERROR' || CR ||,
  64.      'windowtoback; okmsg "window is sent to back"; windowtofront')
  65.  
  66. SAY HIGH || "The screen functions:" || NORMAL
  67. SAY "SCREENTOFRONT/SCREENTOBACK will bring the screen to front/back."
  68. SAY "NOTE: if Post is running on an public screen it is affected by these"
  69. SAY "commands, too. Maybe the result is not the one you expect!"
  70. CALL do_command('screentoback; ADDRESS COMMAND Wait 3; screentofront')
  71.  
  72.  
  73. SAY "The OPEN command will load a file and interpret it:"
  74. CALL do_command('open "POST:doc/post.ps"')
  75.  
  76. SAY "Now we can go to the next page with the NEXTPAGE command. If it was"
  77. SAY "the last page the interpreter will return to the status 'Waiting'."
  78. SAY "If the page was not ready (that means the status of the interpreter"
  79. SAY "was not 'Paused'), the NEXTPAGE command would set the RC=5."
  80. CALL do_command('DO UNTIL rc == 0' || CR ||,
  81.      ' if rc > 0 THEN okmsg POST.LASTERROR' || CR ||,
  82.      ' nextpage' || CR ||,
  83.      'END')
  84.  
  85. SAY "With the GOTOPAGE command you can display a specific page if the"
  86. SAY "file is EPSF:"
  87. CALL do_command('DO UNTIL rc == 0' || CR ||,
  88.      ' if rc > 0 THEN okmsg POST.LASTERROR' || CR ||,
  89.      ' gotopage 4' || CR ||,
  90.      'END')
  91.  
  92. SAY HIGH || "The scroll functions:" || NORMAL
  93. SAY "UP / DOWN / LEFT / RIGHT will scroll up / down / left / right the given"
  94. SAY "value. If it is too high you will arrive at the corner. These functions"
  95. SAY "are safe (you can't scroll over the corners), but they do not inform you"
  96. SAY "wheter you reached the corner or not."
  97. SAY "Let's zip the window and change its dimensions:"
  98. CALL do_command('ZIPWINDOW; CHANGEWINDOWBOX 0 0 400 250')
  99. SAY "Now scrolling makes sense. First we produce an error, because 'a' is not"
  100. SAY "a correct argument to UP. Then we set up the commands for slow scrolling"
  101. SAY "down and right, and fast scrolling up and left"
  102. CALL do_command('UP a ; if rc > 0 THEN okmsg POST.LASTERROR' || CR ||,
  103.      'com.1 = DOWN 1; com.2 = UP 10; com.3 = RIGHT 1; com.4 = LEFT 10' || CR ||,
  104.      'UP 10000; LEFT 10000; /* make sure we start at the corners */')
  105. SAY "Now we can scroll a little bit. At last the window is unzipped again:"
  106. CALL do_command('DO i=1 TO 4' || CR ||,
  107.      '   DO j = 1 to 600' || CR ||,
  108.      '      com.i'|| CR ||,
  109.      '   END' || CR ||,
  110.      'END' || CR ||,
  111.      'ZIPWINDOW')
  112.  
  113. SAY HIGH || "The CLEAR command" || NORMAL
  114. SAY "will reset the interpreter:"
  115. CALL do_command('CLEAR')
  116.  
  117. SAY HIGH || "The GETSTATUS command:" || NORMAL
  118. SAY "All unknown commands will be passed to the interpreter (NOTE: the"
  119. SAY "interpreter treads this string case sensitive, furthermore it must"
  120. SAY "not exceed 255 Bytes). The GETSTATUS command will set the variables"
  121. SAY "POST.ERRORNUM,  POST.ERROR and POST.STATUS. POST.ERRORNUM contains"
  122. SAY "the error number the interpreter returned, POST.ERROR contains the"
  123. SAY "corresponding error string and POST.STATUS contains one of the"
  124. SAY "following: ineractive, arexx, paused, startup, running or waiting."
  125. CALL wait()
  126. CALL do_command('NOCOMMAND')
  127. CALL do_command('GETSTATUS' || CR ||,
  128.      'okmsg ERRNUM POST.ERRORNUM' || CR ||,
  129.      'okmsg ERROR POST.ERROR' || CR ||,
  130.      'okmsg STATUS POST.STATUS')
  131.  
  132. SAY "The last command is QUIT, which will ... "
  133. CALL do_command('QUIT')
  134. EXIT
  135.  
  136. do_command:
  137.  PARSE ARG LINE
  138.  
  139.  SAY HIGH || LINE || NORMAL
  140.  CALL wait
  141.  INTERPRET LINE
  142.  RETURN
  143.  
  144. wait:
  145.  SAY "press" || INFO || " RETURN " || NORMAL || "to continue!"
  146.  PULL dummy
  147.  RETURN